/* ============================
    MOBILE DRAWER (CORRETO)
   ============================ */
@media (max-width: 900px){

  :root{ --topbar-h: 72px; }

  /* o drawer é a navbar-center */
  .navbar-center{
    display: block !important;
    position: fixed !important;
    top: var(--topbar-h) !important;
    left: 0 !important;
    bottom: 0 !important;

    width: min(78vw, 320px) !important;
    background: var(--navbar-bg, #fff) !important;

    transform: translateX(-110%) !important;
    transition: transform .22s ease !important;

    z-index: 2147483647 !important;
    overflow: auto !important;
    padding: 12px !important;
  }

  /* quando abrir */
  body.menu-open .navbar-center{
    transform: translateX(0) !important;
  }

  .logo {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
  }

  .navbar-container {
      padding: 0 1rem 0 0;
  }

  .navbar-left {
    gap: 0;
  }

  .hamburger{
    margin-left: -10px;
    font-size: 2rem;
  }

  /* a UL deixa de ser pílula no mobile */
  .navbar-center .nav-menu{
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;

    width: 100% !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
    gap: 6px !important;
  }

  /* desfaz o "flex:1" do desktop no drawer */
  .navbar-center .nav-item{
    flex: 0 0 auto !important;
    width: 100% !important;
  }

  .navbar-center .nav-link{
    flex-direction: row !important;
    justify-content: flex-start !important;
    height: 48px !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    background: rgba(3, 198, 209, 0.06) !important;
  }

  /* backdrop */
  body.menu-open::before{
    content:"";
    position: fixed;
    inset: 0;
    top: var(--topbar-h);
    background: rgba(0,0,0,.35);
    /* z-index: 2147483646; */
  }
}

@media (max-width: 900px){

  /* garante que o drawer não fica “apagado” */
  .navbar-center{
    opacity: 1 !important;
    filter: none !important;
    background: var(--navbar-bg, #fff) !important;
  }

  /* links e textos visíveis */
  .navbar-center .nav-link{
    opacity: 1 !important;
    color: var(--c-text, #0f172a) !important;
  }

  .navbar-center .nav-link span{
    display: inline !important;              /* força texto aparecer */
    opacity: 1 !important;
    visibility: visible !important;
    color: var(--c-text, #0f172a) !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
  }

  /* ícones visíveis */
  .navbar-center .nav-link i{
    opacity: 1 !important;
    visibility: visible !important;
    color: var(--c-text, #0f172a) !important;
    filter: none !important;
  }

  /* remove qualquer regra antiga que “desliga” o menu */
  .navbar-center .nav-item,
  .navbar-center .nav-menu{
    opacity: 1 !important;
    filter: none !important;
  }
}

@media (max-width: 900px){
  /* o backdrop deve receber clique, mas NÃO pode ficar acima do menu */
  body.menu-open::before{
    /* z-index: 2147483646 !important; */
    pointer-events: auto;
  }

  /* o drawer precisa estar acima e clicável */
  .navbar-center{
    /* z-index: 2147483647 !important; */
    pointer-events: auto !important;
  }

  /* garante que os itens do menu recebem clique */
  .navbar-center .nav-menu,
  .navbar-center .nav-item,
  .navbar-center .nav-link{
    pointer-events: auto !important;
  }
}

@media (max-width: 900px){
  .nav-item.has-submenu .sub-menu{ display: none !important; }

  .nav-item.has-submenu.is-open .sub-menu{
    display: flex !important;
    flex-direction: column !important;
  }
}

@media (max-width: 900px){

  /* submenu no mobile abre abaixo do item (não pro lado) */
  .nav-item.has-submenu .sub-menu{
    display: none !important;
    position: static !important;
    width: 100% !important;
    margin-top: 6px !important;
    margin-bottom: 10px !important;
    padding: 6px !important;
    border-radius: 12px !important;
    background: rgba(0,0,0,.04) !important;
  }

  .nav-item.has-submenu.is-open .sub-menu{
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
  }

  /* cada item do submenu clicável e “bonito” */
  .nav-item.has-submenu .sub-menu li{
    width: 100% !important;
  }

  .nav-item.has-submenu .sub-menu a{
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    padding: 10px 12px !important;
    border-radius: 10px !important;
  }
}

/* ===== FIX DEFINITIVO: submenu visível quando abrir ===== */
.nav-item.has-submenu > .sub-menu{
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* fechado por padrão */
@media (hover: hover) {
  .nav-item.has-submenu > .sub-menu{
    display: none; /* desktop fecha */
  }
  .nav-item.has-submenu:hover > .sub-menu{
    display: flex; /* desktop abre no hover */
  }
}

/* abre por clique (mobile/JS) */
.nav-item.has-submenu.is-open > .sub-menu{
  display: flex !important;
}

@media (max-width: 900px){
  .nav-item.has-submenu .sub-menu a{
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border-radius: 10px !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  .nav-item.has-submenu .sub-menu a i{
    flex: 0 0 18px !important;
    width: 18px !important;
    min-width: 18px !important;
    text-align: center !important;
  }

  .nav-item.has-submenu .sub-menu a span{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: block !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    word-break: break-word !important;
  }
}

@media (max-width: 900px){


  /* backdrop fica logo abaixo da top-navbar */
  body.menu-open::before{
    content: "";
    position: fixed;
    inset: 0;
    top: var(--topbar-h);
    background: rgba(15, 23, 42, 0.45);
    z-index: 1000 !important;
    pointer-events: auto;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }

  /* drawer acima do backdrop (agora funciona porque o pai também subiu) */
  .navbar-center{
    pointer-events: auto !important;
  }

  .navbar-center .nav-menu,
  .navbar-center .nav-item,
  .navbar-center .nav-link{
    pointer-events: auto !important;
  }

}

/* quando submenu estiver aberto */
.nav-item.has-submenu.is-open > .nav-link{
  background: rgba(3, 198, 209, 0.12);
  color: var(--c-secondary);
}

/* quando algum submenu estiver ativo */
.nav-item.has-submenu.active > .nav-link{
  background: rgba(3, 198, 209, 0.12);
  color: var(--c-secondary);
}

/* opcional: mesmo efeito do hover */
.nav-item.has-submenu.is-open > .nav-link,
.nav-item.has-submenu.active > .nav-link{
  box-shadow: inset 0 0 0 1px rgba(3,198,209,.25);
  color: var(--c-secondary);
}

.nav-item.has-submenu .nav-chevron{
  display: none;
}

@media (max-width: 900px){

  .nav-item.has-submenu > .nav-link{
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .nav-item.has-submenu .nav-chevron{
    display: block;
    font-size: 18px;
    margin-left: auto;
    transition: transform .25s ease;
    opacity: .8;
  }

  .nav-item.has-submenu.is-open .nav-chevron{
    transform: rotate(180deg);
  }

}